home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 July
/
EnigmA AMIGA RUN 09 (1996)(G.R. Edizioni)(IT)[!][issue 1996-07 & 08][EARSAN CD VIII].iso
/
earcd
/
dev1
/
vbcc.lha
/
readme.vbcc
Wrap
Text File
|
1996-05-16
|
14KB
|
466 lines
vbcc - portable ANSI C compiler (c) in 1995-96 by Volker Barthelmann
INTRODUCTION
vbcc is a free portable and retargetable ANSI C compiler.
This archive contains the compiler, preprocessor, assembler, linker,
frontend, message browser, startup codes, C-libraries, amiga.lib
replacement as well as several other tools (mostly with complete source).
This gives you a complete system that allows to develop programs in
ANSI C as well as Amiga-specific programs (provided you obtain the
OS-includes).
All major parts of this distribution (including compiler, preprocessor,
libraries etc.) have been compiled/assembled with this system and
apart from the OS-includes everything is included to rebuilt vbcc,
the libraries and many of the other programs.
FEATURES
vbcc..
- comes with source
- is free
- is portable and retargetable
- comes with a global optimizer that can e.g. do global common
subexpression elimination, constant propagation, function inlining
and several other optimizations (but is not yet finished and stable)
- should be (rather) ANSI compliant
- can generate code that runs on a plain 68000 CPU
- can generate code optimized for 020/030, 040 or 060
- can generate code that uses the 68881/2, 68040/060 FPUs directly
and comes with appropriate math-libraries
- generates standard Amiga object files
- does not need too much memory
- comes with a message browser
- offers a lot of error/warning messages that can be turned on/off
separately
WHAT'S NEW
Some changes since the last release on Aminet:
- lots of bug fixes
- global optimizer
- the distribution now contains everything needed and the installation
is easier
- message browser
- special math-library for 68040 (to be used together with some
replacement for the MathIeee-libraries) - probably a huge improvement
for 68060, too
- the included vbcc executable has been compiled by itself and does not
need ixemul.library any more (saves time and memory)
- more optional warnings
- guide with all error/warning messages (converted by Walter Doerwald)
- completed C library
REQUIREMENTS
To use vbcc you need:
- an Amiga with OS 2.0 or higher (programs compiled with vbcc probably
work under earlier OS-versions, too)
- enough RAM (it is probably possible to translate small programs with
1MB, but for larger programs much more will be needed)
Stuff that is not needed, but may be very useful:
- harddisk
- editor
- make, touch etc.
- the Amiga OS-includes (they can be found on certain CDs and on
some ftp-servers which have those CDs mounted)
- pipe-command (to use the message browser)
Also you should know how to use the shell and you should know ANSI C
(if you need a book I recommend (like everyone) "The C Programming
Language, Second Edition, ANSI C" by Kernighan and Ritchie).
LEGAL
Note that this distribution contains several programs, libraries etc.
that are from different authors and are under different legal status.
So always read the corresponding doc/guide-file to find out under
what conditions a certain file may be used, distributed etc.
For the most part you can assume that you may use everything for
non-commercial purposes and may distribute the unchanged archive
in whole.
Changing any parts from this archive, distributing parts of it or
using it commercially might be legal for certain parts, but illegal
for others, so read all docs carefully before doing any of the above.
This archive contains code written by (this list may be incomplete):
Volker Barthelmann, Frank Wille, Thorsten Schaaps, Dennis Ritchie,
Matthias Fleischer, Gunther Nikl, Mike Schwartz
However, if you have any comments/problems etc. with anything, please
do not bother them, but write to me (volker@vb.franken.de) first.
INSTALLATION/TUTORIAL
The first step (which you probably already did) is to extract the
entire archive (take care to preserve the file attributes).
The distributed programs are for the most part only usable from a shell.
To use vbcc the following steps are necessary:
1. Assign vbcc: to the subdirectory vbcc/machines/amiga68k.
2. Assign vlib: to vbcc:lib.
3. Assign vinclude: to vbcc:include.
If you have the OS-includes you can either add the path to this
assign, e.g.
assign vinclude: vbcc:include myhd:os-includes
or you can modify the vc.config (see below).
4. Add vbcc:bin to your path.
5. set the stack to a reasonable value (perhaps some 10k).
If you use vbcc frequently it is probably a good idea to add those
commands to your user-startup, shell-startup or similar.
However if you just want to try it out the sample script init_vbcc in
the subdirectory machines/amiga68k does all this for you.
You have to cd in its directory and start it from there, e.g.:
cd myhd:vbcc/machines/amiga68k
init_vbcc
Now you should be able to use vbcc. E.g. if you want to compile and
link the program hello.c you can type
vc hello.c
This will compile and link the file hello.c and create the executable
a.out in the current directory.
vc hello.c -o hello
will do the same, but the created executable will be called hello.
vc -c t1.c t2.c
will compile t1.c and t2.c without linking, creating the object files
t1.o and t2.o.
vc t1.o t2.o -o tt
will link them together and create the executable tt.
If your program uses floating point add -lmieee to the commandline
to link with the math-library, e.g.:
vc calc.c -o calc -lmieee
For further information read the files:
vbcc/doc/vbcc.doc
vbcc/machines/amiga68k/doc/vc.doc
vbcc/machines/amiga68k/doc/vbccamiga68k.doc
vbcc/machines/amiga68k/doc/vclib.doc
CONFIGURATION
The frontend searches for a file vc.config in ENV: and vbcc: to read
preferences. The provided sample vc.config should be usable and does
not have to be changed but you can add something to suit your personal
preferences - read
vbcc/machines/amiga68k/doc/vc.doc
to find out more.
If you have the OS-includes and do not want to add them to the vinclude:
assign mentioned above you can also modify the vc.config file:
Add -I<full_path> directly after the two occurences of -Ivinclude: in
the sample vc.config, e.g.:
-pp=vcpp -Ivinclude: -Imyhd:os-include -D__STDC__=1 %s >%s
-ppv=vcpp -Ivinclude: -Imyhd/os-include -D__STDC__=1 %s >%s
There is a smaller version of vbcc which does not contain the optimizer.
If you do not intend to use the optimizer or have tight memory you can
rename vbcc/machines/amiga68k/bin/vbcc to vbccl and rename
vbcc/machines/amiga68k/bin/vbccs to vbcc. This will save some memory.
MESSAGE BROWSER
If you start the message browser with
run vbrowse
it will open a window with a listview gadget. If you have a pipe
command installed you can now invoke vc via tovbr, e.g.
tovbr vc hello.c
and any output from vc will be displayed in the window of vbrowse
rather than in the shell. It might be convenient to make an alias like
alias vb tovbr vc
so that invoking vb will automatically display the output in the browser.
If there is an error/warning-message in the browser you can invoke a
configurable command by double-clicking on the message.
Double-clicking on the quoted line will invoke GoldEd (if you have it
installed) by default, load the file that caused the error and the cursor
will be placed on this line in the default configuration. If you use
another editor or want to change this behaviour have a look at
vbcc/machines/amiga68k/doc/vbrowse.doc.
Double-clicking on the error-line (the one below the quoted line) will
invoke the command showerr that will open the VBCCMessages.guide and
display a more detailed description of the error (if there is one in
the guide - there are not yet descriptions for all messages).
Read vbcc/machines/amiga68k/vbrowse.doc for further information.
CONTENTS
This archive contains (among others) the following files and directories:
vbcc/
The main directory. The source files for the compiler and the
builtin preprocessor by Thorsten Schaaps are here.
vbcc/doc/
Target independant documentation for the compiler is in this dir.
vbcc/doc/History
Changes in since earlier versions of the compiler.
vbcc/doc/vbcc.doc
Documentation for the target-independant part of the compiler.
vbcc/doc/errors.doc
A list of all error/warning-messages from the compiler -
sometimes with more detailed descriptions.
vbcc/machines/amiga68k/
Everything that is specific to the Amiga68k is in this directory.
vbcc/machines/amiga68k/doc/
This contains documentation for the Amiga68k specific parts.
vbcc/machines/amiga68k/doc/PhxAss.guide
Documentation for the assembler by Frank Wille. Note that this
distribution only contains FreePhxAss and that there is another
version that is shareware.
vbcc/machines/amiga68k/doc/PhxLnk.guide
Documentation for the linker by Frank Wille.
vbcc/machines/amiga68k/doc/VBCCMessages.guide
The vbcc/doc/errors.doc in Amigaguide-format (done by Walter
Doerwald).
vbcc/machines/amiga68k/doc/vbccamiga68k.doc
Amiga68k-specific documentation for the compiler.
vbcc/machines/amiga68k/doc/vc.doc
Documentation for the Amiga-compiler-frontend.
vbcc/machines/amiga68k/doc/vclib.doc
Documentation for the Amiga-C-library.
vbcc/machines/amiga68k/doc/vcpp.doc
Some short comments regarding the preprocessor from the
lcc-distribution. Read the copyright-notice.
vbcc/machines/amiga68k/doc/vbrowse.doc
Documentation on the message browser and several connected tools.
vbcc/machines/amiga68k/doc/fd2lib.doc
Documentation for fd2lib.
vbcc/machines/amiga68k/doc/minstart.doc
Documentation for minstart.o.
vbcc/machines/amiga68k/doc/alib.doc
Documentation for alib by Mike Schwartz.
vbcc/machines/amiga68k/init_vbcc
A sample script to do the necessary assigns etc. to use vbcc.
vbcc/machines/amiga68k/include
This directory contains the standard-ANSI-includes for vbcc.
vbcc/machines/amiga68k/bin/
This directory contains all executables.
vbcc/machines/amiga68k/bin/vbcc
The C compiler with global optimizer.
vbcc/machines/amiga68k/bin/vbccs
A smaller version of the C compiler without optimizer.
vbcc/machines/amiga68k/bin/vc
The compiler-frontend.
vbcc/machines/amiga68k/bin/vcpp
The preprocessor from the lcc-distribution (by Dennis Ritchie).
vbcc/machines/amiga68k/bin/FreePhxAss
The assembler by Frank Wille.
vbcc/machines/amiga68k/bin/PhxLnk
The linker by Frank Wille.
vbcc/machines/amiga68k/bin/vbrowse
vbcc/machines/amiga68k/bin/vsend
vbcc/machines/amiga68k/bin/tovbr
vbcc/machines/amiga68k/bin/showerr
The message browser and some tools.
vbcc/machines/amiga68k/bin/fd2lib
fd2lib generates stubs for shared libraries and must used to
rebuilt amiga.lib or if you want to use any custom shared-library.
vbcc/machines/amiga68k/bin/alib
Used to create link-libraries.
vbcc/machines/amiga68k/lib/
This directory contains the link-libraries and startup-codes.
vbcc/machines/amiga68k/lib/startup.o
The standard startup-code.
vbcc/machines/amiga68k/lib/vc.lib
The standard C-library.
vbcc/machines/amiga68k/lib/vcs.lib
The small data C-library.
vbcc/machines/amiga68k/lib/mieee.lib
Math-library that uses the MathIeee-libraries.
vbcc/machines/amiga68k/lib/m881.lib
Math-library that uses FPU-instructions of the 68881/2.
vbcc/machines/amiga68k/lib/m040.lib
Math-library that uses FPU-instructions that do not have to be
emulated on a 68040 and the MathIeee-libraries for other
functions.
vbcc/machines/amiga68k/lib/amiga.lib
Replacement for the standard amiga.lib.
vbcc/machines/amiga68k/lib/amigas.lib
Small data replacement for the standard amiga.lib.
vbcc/machines/amiga68k/lib/minstart.o
Small startup-code for small programs that do not use functions
from the C-library.
BUGREPORTS/COMMENTS
If you think vbcc generates bad code, throws enforcer hits, crashes,
seems to be not ANSI-compliant etc. and the problem is not mentioned
anywhere in this docs as known problem, please send a mail with your
system configuration, the vbcc version, the command line you used, the
source that caused the problem and a brief description of the problem to
volker@vb.franken.de
Also if you find problems with the includes, the libraries or you have
suggestions, dislikes etc. send me a mail.
Corrections, improvements etc. of the manuals are appreciated, too.
Volker Barthelmann volker@vb.franken.de
Kennedy-Ring 39
91301 Forchheim
Germany